1. Field of the Invention
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for managing the use of data structures. Still more particularly, the present invention relates to a computer implemented method, apparatus, and computer usable program code for managing the use of a stack.
2. Description of the Related Art
In processing data, programs typically use a stack to store data on a temporary basis. A stack is a memory area in which data may be stored. Typically, a stack has two basic operations, a push and a pop. A push adds information or data to the top of a stack and a pop removes the data from the top of the stack. Stacks are also used to allocate storage for local variables, that is, variables which are used only while a routine is active. A stack is usually created in a section of memory with a fixed origin and a variable size. Although the size of the stack may be increased or decreased, stacks typically have maximum size limits. As a result, depending on the usage, a data processing system may run out of stack space for a given thread or process.
Currently, mechanisms are present to determine when stack space has been completely used. Currently used mechanisms include hardware detection, such as a page fault occurring when stack space in unavailable. These types of solutions usually provide a notification when stack space has actually run out and may dynamically increase the stack size until the maximum allowable size is reached.